package com.xuanzheng.company.dao;

import com.xuanzheng.company.entity.EmployeePerformance;
import java.util.List;

public interface EmployeePerformanceDao {
    /**
     * 保存员工绩点记录
     * @param performance 绩点记录对象
     * @return 受影响的行数
     */
    int save(EmployeePerformance performance);
    
    /**
     * 更新员工绩点记录
     * @param performance 绩点记录对象
     * @return 受影响的行数
     */
    int update(EmployeePerformance performance);
    
    /**
     * 根据ID获取员工绩点记录
     * @param id 记录ID
     * @return 绩点记录对象
     */
    EmployeePerformance getById(String id);
    
    /**
     * 根据员工ID、年份和月份获取绩点记录
     * @param userId 员工ID
     * @param year 年份
     * @param month 月份
     * @return 绩点记录对象，如果不存在则返回null
     */
    EmployeePerformance getByUserIdAndYearMonth(String userId, int year, int month);
    
    /**
     * 获取公司某年某月的所有员工绩点记录
     * @param companyId 公司ID
     * @param year 年份
     * @param month 月份
     * @return 绩点记录列表
     */
    List<EmployeePerformance> getByCompanyIdAndYearMonth(String companyId, int year, int month);
    
    /**
     * 获取员工的所有绩点记录
     * @param userId 员工ID
     * @return 绩点记录列表
     */
    List<EmployeePerformance> getByUserId(String userId);
    
    /**
     * 删除员工绩点记录
     * @param id 记录ID
     * @return 受影响的行数
     */
    int delete(String id);
} 